The present invention relates generally to methods and systems, including computer programs and computer-programmed devices, for automatically generating processor register block Register Transfer Language (xe2x80x9cRTLxe2x80x9d) modules for automatic instantiation of an integrated circuit (xe2x80x9cICxe2x80x9d) or related device. The invention allows processor blocks to be created easily and consistently for each of the major blocks of an IC device design.
Integrated circuit devices contain a large plurality of registers. As is known in the art, a data register within an IC device is one of a small set of data holding places that are part of a computer microprocessor and that provide a place for passing data from one instruction to the next sequential instruction or to another program that the operating system has just given control to. A register must be large enough to hold an instructionxe2x80x94for example, in a 32-bit instruction computer, a register must be 32 bits in length. In some IC designs, there are smaller registersxe2x80x94for example, half-registersxe2x80x94for shorter instructions. Depending on the processor design and language rules, registers may be numbered or have arbitrary names.
Processor registers must in general be instantiated before operational use. An xe2x80x9cinstancexe2x80x9d is a particular realization of an abstraction or such as a class of object or a computer process. To instantiate is to create such an instance by, for example, defining one particular variation of object within a class, giving it a name, and locating it in some physical place. In terms of IC registers, instantiation is generally known to consist of providing for a particular register within an IC a given state.
Register transfer language describes what happens in a computer, literally among registers, when specific conditions are met. For instance, an RTL expression such as:
axe2x80x2b: R2 less than xe2x88x92R3+R1
means if axe2x80x2b==1 then add the contents of R3 and R1 and store in register R2 where a and b are control signals. The discussion within this disclosure assumes a level of general familiarity with RTL expressions and coding structures.
In the prior art, it has of course been known that it is advantageous and necessary to instantiate a number (often a large plurality) of registers within an IC or IC device to prepare it for computational usage in accordance with its intended function. There are generally thousands, or even many thousands, of registers within an IC. In the prior art, coding or instantiation of proper register values for each of these registers had to be performed manually. Such a process is laborious, and introduces a risk of inconsistent or erroneous instantiation of values, in addition to being unduly costly. Additionally, customizing new register maps (i.e., new sets of particular combinations of instantiated states for particular registers) has been laborious, thus perhaps discouraging maximally-adaptable customization of register states useful for particular IC designs or functions. Further, manual instantiation of registers has not, it is believed, always been associated with maximally-efficient localizing of registers and register groupings within IC architecture, which has led in some cases to lengthened bus paths within the IC, thus possibly giving rise to time lags for IC processing as well as related timing problems. Further, multiple departments or fabricating personnel for an IC design may not, in the cases in which manual instantiation has been used, always been readily able to ensure the consistency and uniformity of the manually-instantiated register values for all registers within an IC design.
Thus, it would be desirable to provide an automated system and method for instantiation of IC chips. It would further be desirable to provide for readily-implemented computerized application of such automated method. It would likewise be desirable to provide for a method of consistent register instantiation, even when multiple chip developers or workstations are involved in development or instantiation of a given IC. It would further be desirable to provide a method of IC instantiation conducing to ready customization of IC registers and a variety of different register states for different functional purposes. It would still further be desirable to provide such a method in a fashion that would enable localizing of registers and associated groups of registers to shorten bus paths and reduce IC timing problems. It would also be desirable to provide such a method in connection with a readily-available, extensible programming language, such as RTL. It would still further be desirable to provide such a method in a fashion substantial universal and adaptable to processing systems for instantiation that are capable of processing text files. The prior art is not believed to meet these needs.
The present invention includes an automated method for instantiation of a plurality of registers within an integrated circuit or integrated circuit device, including the steps of defining a programming language having a plurality of keywords identified with the plurality of registers, creating a control file describing the plurality of registers using the defined programming language, providing a compiling program compatible with the control file, and executing the compiling program to generate from the control file a first set of synthesizable codes containing information on traits of each of the registers. Preferably, the synthesizable codes include RTL codes. In a further embodiment, the invention includes executing the compiler program for generating an address decoder module operative n conjunction with the first set of synthesizable code through a top-level module for instantiation of the address decoder module and the plurality of registers.
The present invention makes available an automated system and method for computer-implemented instantiation of IC chips. The invention also makes possible of consistent register instantiation, even when multiple chip developers or workstations are involved in development or instantiation of a given IC. The methods disclosed herein are useful for ready customization of IC registers and a variety of different register states for different functional purposes. The present invention further enables improved localizing of registers and associated groups of registers to shorten bus paths and reduce IC timing problems. Also disclosed herein are embodiments of the present invention implemented in connection with a readily-available, extensible programming language, such as RTL. The compatibility of RTL with processing systems capable of processing text files makes the RTL-utilizing embodiment of the present invention particularly useful. The disclosure herein is drawn principally to such RTL embodiments, and the methods and examples detailed hereinbelow will be readily understood and adaptable by those skilled in the art of IC register design and RTL coding.
Such methods conduce to a substantial universal and adaptable methods for instantiation that are capable with many types of method-implementing instantiating computers capable of processing text files.